/*
 * Copyright 2018-10-17 7:49:26 The JA-SIG Collaborative. All rights reserved.
 * distributed with thi file and available online at
 */
package com.lap.scp.erp.domain;

import java.util.Date;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import com.lap.scd.commons.domain.IntegerDO;

/**
 * <pre>
 *  收款明细，其中一些通用字段在ModelDO和BaseDO里面，该对象基本上只用于数据保存使用。
 *   对应的表名：receivables_detail
 *
 *	如果说界面业务复杂，有特别需要，需要在额外定义Bean对象来接收界面数据。
 * </pre>
 * 
 * @author 劳水生 Exp
 * @Date 2018-10-17 7:49:26
 * @since 2.0.0
 */
public class ReceivablesDetailDO extends IntegerDO {
	private static final long serialVersionUID = -4337083741310665587L;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	receivables_id
	 * 备注:
	 *  收款信息ID;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer receivablesId;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	contract_id
	 * 备注:
	 *  合同ID;字段的长度:11,可否为空:是。
	 * </pre>
	 */
	private Integer contractId;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	receivables_date
	 * 备注:
	 *  收款日期;字段的长度:,是否必填:是。
	 * </pre>
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date receivablesDate;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	amount
	 * 备注:
	 *  收款金额;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer amount;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	full_name
	 * 备注:
	 *  收款人;字段的长度:64,是否必填:是。
	 * </pre>
	 */
	private String fullName;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	method_code
	 * 备注:
	 *  收款方式，数字字典获取;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer methodCode;

	/**
	 * 页面字段
	 */
	private Double pageAmount;

	/**
	 * @param receivablesId
	 */
	public void setReceivablesId(Integer receivablesId) {
		this.receivablesId = receivablesId;
	}

	/**
	 * @return 收款信息ID
	 */
	public Integer getReceivablesId() {
		return receivablesId;
	}

	/**
	 * 
	 * @return 获取合同ID
	 */
	public Integer getContractId() {
		return contractId;
	}

	/**
	 * 赋值合同ID
	 * 
	 * @param contractId
	 */
	public void setContractId(Integer contractId) {
		this.contractId = contractId;
	}

	/**
	 * @param receivablesDate
	 */
	public void setReceivablesDate(Date receivablesDate) {
		this.receivablesDate = receivablesDate;
	}

	/**
	 * @return 收款日期
	 */
	public Date getReceivablesDate() {
		return receivablesDate;
	}

	/**
	 * @param amount
	 */
	public void setAmount(Integer amount) {
		this.amount = amount;
	}

	/**
	 * @return 收款金额
	 */
	public Integer getAmount() {
		return amount;
	}

	/**
	 * @param fullName
	 */
	public void setFullName(String fullName) {
		this.fullName = fullName;
	}

	/**
	 * @return 收款人
	 */
	public String getFullName() {
		return fullName;
	}

	/**
	 * @param methodCode
	 */
	public void setMethodCode(Integer methodCode) {
		this.methodCode = methodCode;
	}

	/**
	 * @return 收款方式，数字字典获取
	 */
	public Integer getMethodCode() {
		return methodCode;
	}

	public Double getPageAmount() {
		if (amount != null) {
			pageAmount = Math.rint(amount / 100.0);
		}
		return pageAmount;
	}

	public void setPageAmount(Double pageAmount) {
		if (pageAmount != null) {
			this.amount = (int) Math.rint(pageAmount * 100.0);
		}
		this.pageAmount = pageAmount;
	}

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this);
	}

}
